package cc.rengu.igas.bomp.facade;

import cc.rengu.igas.bomp.facade.request.*;
import cc.rengu.igas.bomp.facade.response.*;
import cc.rengu.igas.bomp.facade.result.Result;

/**
 * @author: zhangxuran
 * @Date: 2020/4/23 17:58
 * ription: 商户相关信息查询
 */

public interface BompMchntQueryService {
    /**
     * 商户列表查询
     *
     * @param request 请求
     * @return Result<MchntSettleAcctInfoQueryResponse> 商户列表信息
     */
    Result<MchntInfoListQueryResponse> mchntInfoListQuery(MchntInfoListQueryRequest request);

    /**
     * 商户基本信息查询
     *
     * @param request 请求
     * @return Result<MchntSettleAcctInfoQueryResponse> 商户基本信息
     */
    Result<MchntBaseInfoQueryResponse> mchntBaseInfoQuery(MchntBaseInfoQueryRequest request);

    /**
     * 商户签约信息
     *
     * @param request 请求
     * @return Result<MchntSettleAcctInfoQueryResponse> 商户签约信息
     */
    Result<MchntSignInfoQueryResponse> mchntSignInfoQuery(MchntSignInfoQueryRequest request);

    /**
     * 商户结算信息
     *
     * @param request 请求
     * @return Result<MchntSettleAcctInfoQueryResponse> 商户结算信息
     */
    Result<MchntSettleAcctInfoQueryResponse> mchntSettleInfoQuery(MchntSettleAcctInfoQueryRequest request);

    /**
     * 商户产品列表查询
     *
     * @param request 请求
     * @return Result<MchntProdListQueryResponse> 商户产品列表
     */
    Result<MchntProdListQueryResponse> mchntProdListQuery(MchntProdListQueryRequest request);

    /**
     * 商户产品信息查询
     *
     * @param request 请求
     * @return Result<MchntProdInfoQueryResponse> 商户产品信息
     */
    Result<MchntProdInfoQueryResponse> mchntProdInfoQuery(MchntProdInfoQueryRequest request);

    /**
     * 商户影像信息查询
     *
     * @param request 请求
     * @return Result<MchntImageInfoQueryResponse> 商户影像信息
     */
    Result<MchntImageInfoQueryResponse> mchntImageInfoQuery(MchntImageInfoQueryRequest request);

    /**
     * 代理机构列表查询
     *
     * @param request 请求
     * @return Result<AgentMchntListQueryResponse> 代理商列表
     */
    Result<AgentMchntListQueryResponse> agentMchntListQuery(AgentMchntListQueryRequest request);

    /**
     * 平台商户列表查询
     *
     * @param request 请求
     * @return Result<PlatMchntListQueryResponse> 平台商户列表
     */
    Result<PlatMchntListQueryResponse> platMchntListQuery(PlatMchntListQueryRequest request);

    /**
     * 集团商户列表查询
     *
     * @param request 请求
     * @return Result<GroupMchntListQueryResponse> 集团商户列表
     */
    Result<GroupMchntListQueryResponse> groupMchntListQuery(GroupMchntListQueryRequest request);

    /**
     * 商户等级列表查询
     *
     * @param request 请求
     * @return Result<MchntLevelListQueryResponse> 商户等级列表
     */
    Result<MchntLevelListQueryResponse> mchntLevelListQuery(MchntLevelListQueryRequest request);

    /**
     * 商圈列表查询
     *
     * @param request 请求
     * @return Result<MchntAreaListQueryResponse> 圈圈列表
     */
    Result<MchntAreaListQueryResponse> mchntAreaListQuery(MchntAreaListQueryRequest request);

    /**
     * 银联风险商户信息查询
     *
     * @param request 请求
     * @return Result<UnionRiskMchntQueryResponse> 银联风险商户
     */
    Result<UnionRiskMchntQueryResponse> unionRiskMchntQuery(UnionRiskMchntQueryRequest request);

    /**
     * 平台商户微信进件信息查询
     *
     * @param request 请求
     * @return Result<BaseProdInfoListQueryResponse> 平台商户微信进件结果
     */
    Result<PlatMchntWechatInfoQueryResponse> platMchntWechatInfoQuery(PlatMchntWechatInfoQueryRequest request);

    /**
     * 商户终端及二维码数量查询
     *
     * @param request 请求
     * @return 商户终端及二维码信息数量
     */
    Result<TermAndQrcodeNumQueryResponse> termAndQrcodeNumQuery(TermAndQrcodeNumQueryRequest request);

    /**
     * 商户费率列表查询
     *
     * @param request 请求
     * @return 商户费率列表信息
     */
    Result<MchntFeeListQueryResponse> mchntFeeListQuery(MchntFeeListQueryRequest request);

    /**
     * 商户交易权限查询
     *
     * @param request 请求
     * @return 商户交易权限信息
     */
    Result<MchntTxnAuthQueryResponse> mchntTxnAuthQuery(MchntTxnAuthQueryRequest request);

    /**
     * 商户限额配置查询
     *
     * @param request 请求
     * @return 商户限额配置信息
     */
    Result<MchntTxnLimitCfgQueryResponse> mchntTxnLimitCfgQuery(MchntTxnLimitCfgQueryRequest request);

    /**
     * 商户入驻信息查询
     *
     * @param request 请求
     * @return 响应
     */
    Result<MchntStatusInfoListQueryResponse> mcnhtStatusInfoListQuery(MchntStatusInfoListQueryRequest request);

    /**
     * 商户密钥配置信息查询
     *
     * @param request 请求
     * @return 商户密钥配置信息
     */
    Result<MchntKeyInfoQueryResponse> mchntKeyInfoQuery(MchntKeyInfoQueryRequest request);

    /**
     * 商户基本信息查询
     *
     * @param request 请求
     * @return Result<MchntBaseQueryResponse> 商户基本信息
     */
    Result<MchntBaseQueryResponse> mchntBaseQuery(MchntBaseInfoQueryRequest request);
}
